package javaLearning.接口与继承;

/**
 * @author : K k
 * @date : 10:37 2020/9/2
 * 父类中的（对于子类
 * private修饰的变量和方法 无法访问，无法重写，无法调用
 * final修饰的变量可以访问，修饰的方法不能重写，可以调用
 * static修饰的变量可以访问，修饰的方法不能重写，可以调用
 * protected修饰的变量子类可以访问，修饰的方法可以重写，可以调用，非子类无法调用
 * 非子类只能调用static修饰的变量和方法。
 *
 * 重载时
 * 方法名要相同，参数可以不同，返回类型可以不同也可以相同（相同就必须让参数不同）
 * 修饰符任意(前提时满足重载，若只是更改方法的修饰符一样行不通）
 */
public class Parent {
    private int i=1;
    final int j=1;
    static int p; //父类静态变量
    protected int q=1;

    static {
        System.out.println("父类静态代码块" + p);
        p=10;
    }

    {
        System.out.println("父类普通代码块"+p);
    }
    Parent(){
        System.out.println("父类构造器"+p);
    }

    final void action1(){
        System.out.println("final");
    }
    private void action2(){
        System.out.println("private");
    }
    static void action3(){
        System.out.println("static");
    }
    public void action4(){
        System.out.println("public");
    }
    protected void action5(){
        System.out.println("public");
    }

    protected int action4(int x){
        System.out.println("重载");
        return 1;
    }
}
